package fr.afcepf.atod19.dreamproject.service.implementation;

import fr.afcepf.atod19.dreamproject.business.interfaces.IBusinessCatalogue;
import fr.afcepf.atod19.dreamproject.dto.CommentaireDTO;
import fr.afcepf.atod19.dreamproject.dto.ReveDTO;
import fr.afcepf.atod19.dreamproject.dtoutils.EntityToDTOConverter;
import fr.afcepf.atod19.dreamproject.entity.Commentaire;
import fr.afcepf.atod19.dreamproject.entity.Reve;
import fr.afcepf.atod19.dreamproject.service.interfaces.IFicheProduitService;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.List;

@Path("/ficheProduit")
public class FicheProduitServiceImpl implements IFicheProduitService{

    private IBusinessCatalogue businessCatalogue;

    @Override
    @Path("/getListeCommentaires/{idReve}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<CommentaireDTO> getListeCommentaires(
            @PathParam("idReve") int idReve) {
        Reve reve = businessCatalogue.getReveById(idReve);
        List<Commentaire> commentaires = businessCatalogue.getCommentairesFromReve(reve);
        List<CommentaireDTO> commentaireDTOs = EntityToDTOConverter.getListeCommentairesDTO(commentaires);
        return commentaireDTOs;
    }

    @Override
    @Path("/getInformationsReve/{idReve}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public ReveDTO getInformationsReve(
            @PathParam("idReve") int idReve) {
        Reve reve = businessCatalogue.getReveById(idReve);
        ReveDTO reveDTO = EntityToDTOConverter.getReveDTO(reve);
        return reveDTO;
    }

    public IBusinessCatalogue getBusinessCatalogue() {
        return businessCatalogue;
    }

    public void setBusinessCatalogue(IBusinessCatalogue businessCatalogue) {
        this.businessCatalogue = businessCatalogue;
    }
}
